package com.sort;

/**
 * @author zhengTao
 * @version 1.0
 * @description: 选择排序
 *                  1.每一趟下来确定一个最小的数，放在数组最前面
 *  *               2.一共需要排  （数组长度-1） 趟, 因为最后一趟只有一个数，前面都排好了，最后一个数自然也就确定了
 *  *               3.每一次排序的数字从指针趟数.到 最后
 *                  4.每次确定第一个数为最小的数，记录索引位置和大小
 * @date 2022/9/18 14:39
 */
public class SelectSort {
    public static void main(String[] args) {
        int[] nums=new int[]{2,5,3,7,9,6,1,8,4};
        selectSort(nums);
        for (int num : nums) {
            System.out.println(num);
        }
    }

    private static void selectSort(int[] nums) {
        for (int i = 0; i < nums.length - 1; i++) {   //遍历趟数
             int minIndex=i;
            for (int j =i+1; j <=nums.length - 1 ; j++) {
                //每一次排序的数字从指针趟数.到 最后
                //找到最小值的下标
                if(nums[j]<nums[minIndex]){
                    minIndex=j;
                }
            }
            //交换
            if (i!=minIndex) {
               int temp=nums[minIndex] ;
               nums[minIndex]=nums[i];
               nums[i]=temp;
            }
        }
    }

}
